import math

n = int(input("Enter n: "))


def sieve(n):
    l = [True] * (n + 1)
    prime = []
    start = 2
    end = int(math.sqrt(n))
    while (start <= end):
        if l[start] == True:
            prime.append(start)
            for i in range(start * start, n + 1, start):
                if l[i] == True:
                    l[i] = False
        start += 1

    for j in range(end + 1, n + 1):
        if l[j] == True:
            prime.append(j)

    return prime


print(sieve(n))
